<?php 
class professor extends CI_Controller
{
	private static $titulo_lista_professor = 'professor';

	public function __construct()
	{
		parent::__construct();
		$this->load->model("Professor_Model",'',TRUE);
		$this->load->helper('url','image_lib');
	}
	public function index()
	{
		$data['title'] = 'professor';

		$data['table'] = $this->gerar_tabela($this->Professor_Model->get(null));

		$this->carrega_view('professor/listaprofessor', $data);
	}

	public function apagar ($id){
		$this->Professor_Model->apaga($id);

		$data = array(
				'title' => professor::$titulo_lista_professor,
				'mensagem' => 'professor apagado com sucesso!',
				'professor' => $this->Professor_Model->get(null)
		);
		
		$data['table'] = $this->gerar_tabela($this->Professor_Model->get(null));

		$this->carrega_view('professor/listaprofessor', $data);
	}

	public function view($id)
	{
		$data['professor'] = $this->Professor_Model->get($id);
		
	}

	public function criar()
	{

		$this->load->helper('form');
		$this->load->library('form_validation');

		$data['title'] = 'Novo professor';
		

		$this->form_validation->set_rules(
				'Nome',
				'Nome',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'matricula',
				'Matrícula',
				'required|greater_than[0]|less_than[1000000]|is_unique[professor.matricula]'
		);
	
		$this->form_validation->set_rules(
				'perfil_id',
				'Perfil',
				'required'
		);
	
	
		if ($this->form_validation->run() === FALSE)
		{
			$this->load->model('perfil_Model','Perfil');
			$perfil= $this->Perfil->get(null);
			$lista_perfil = array(''=> '');

			foreach ($perfil as $p){
				$lista_perfil[$p['id']] = $p['nome'];
				
			}
			$data['perfil'] = $lista_perfil;

			$this->carrega_view('professor/criar', $data);

		}
		else
		{
				
			$this->Professor_Model->define_professor();
				
			$data = array(
					'title' => professor::$titulo_lista_professor,
					'mensagem' => 'Professor criado com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Professor_Model->get(null));
			$this->carrega_view('professor/listaprofessor', $data);
		}
	}
	
	function editar($matricula)
	{
		$data['title'] = 'Atualizar professor';
		$data['registro'] = $this->Professor_Model->get($matricula);
		$data['matricula'] = $matricula;
		
		$this->load->model('perfil_Model','Perfil');
		$perfil= $this->Perfil->get(null);
		$lista_perfil = array(''=> '');
		
		foreach ($perfil as $p){
			$lista_perfil[$p['id']] = $p['nome'];
		
		}
		$data['perfil'] = $lista_perfil;
	
		$this->carrega_view('professor/criar', $data);
	}
	
	public function atualizar($matricula)
	{

		$this->load->helper('form');
		$this->load->library('form_validation');
		$this->load->library('is_uniq_validation');
	
		$data['title'] = 'Atualizar professor';
	
		
		$this->form_validation->set_rules(
				'Nome',
				'Nome',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'matricula',
				'Matrícula',
				'required|greater_than[0]|less_than[1000000]'
		);
	
		$this->form_validation->set_rules(
				'perfil_id',
				'Perfil',
				'required'
		);
	
	
		if ($this->form_validation->run() === FALSE)
		{
			$this->load->model('perfil_Model','Perfil');
			$perfil= $this->Perfil->get(null);
			$lista_perfil = array(''=> '');
			
			foreach ($perfil as $p){
				$lista_perfil[$p['id']] = $p['nome'];
			
			}
			$data['perfil'] = $lista_perfil;
	
			$this->carrega_view('professor/criar', $data);
	
		}
		else
		{
	
			$this->Professor_Model->update_professor();
	
			$data = array(
					'title' => professor::$titulo_lista_professor,
					'mensagem' => 'professor atualizado com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Professor_Model->get(null));
			$this->carrega_view('professor/listaprofessor', $data);
		}
	}

	private function gerar_tabela($professors){
		
		$this->load->library('table');
		$this->table->set_empty("&nbsp;");
		$this->load->model('perfil_Model','Perfil');
		$this->table->set_heading('Matrícula', 'Nome', 'Perfil', 'Ações');
		foreach ($professors as $professor){
			
			$perfil = $this->Perfil->get_where(array('id' => $professor['perfil_id']));
			$this->table->add_row($professor["matricula"], $professor["Nome"], $perfil[0]['nome'],
					anchor('professor/editar/'.$professor["matricula"],'Atualizar',array('class'=>'update')).' '.
					anchor('professor/apagar/'.$professor["matricula"],'Remover',array('class'=>'delete','onclick'=>"return confirm('Tem certeza que deseja remover esse professor ?')"))
			);
		
		
		}
		return ($this->table->generate());
	}
	/**
	 * Carrega a view com o cabeçalho e o rodapé.
	 *
	 * @param unknown_type $caminho_view Caminho da view.
	 * @param unknown_type $dados Array com os dados para a view.
	 */
	private function carrega_view($caminho_view, $dados){

		$this->load->view('templates/cabecalho', $dados);
		$this->load->view($caminho_view, $dados);
		$this->load->view('templates/rodape');
	}
}
?>